package org.example.user.service;


import com.baomidou.mybatisplus.extension.service.IService;
import org.example.commonapi.domain.Practice;
import org.example.commonapi.domain.R;
import org.example.commonapi.domain.User;
import org.example.commonapi.dto.InfoFormDTO;
import org.example.commonapi.dto.LoginInfo;
import org.example.commonapi.dto.StudentDto;
import org.example.commonapi.vo.MyStudentVO;
import org.example.commonapi.vo.PieVO;
import org.example.commonapi.vo.StudentVO;
import org.example.commonapi.vo.StudyHistoryVO;
import org.example.commonapi.vo.TagVO;

import javax.servlet.http.HttpServletRequest;
import java.util.List;


/**
* @author DELL
* @description 针对表【user】的数据库操作Service
* @createDate 2024-05-16 20:17:38
*/
public interface UserService extends IService<User> {


    User login(String username, String password);


    Long register(LoginInfo loginInfo);

    User getById(Long id);

    void uploadHead(Long id, String address);

    List<StudentDto> studentList(String schoolName, String username);

    LoginInfo getInfo(Long id);

    R<List<StudyHistoryVO>> getStudyHistory(HttpServletRequest request);

    R<List<Practice>> getPracticeDetail(HttpServletRequest request);

    R<List<TagVO>> getVideoDetail(HttpServletRequest request);

    R submitRoleInfo(InfoFormDTO infoFormDTO, HttpServletRequest request);

    R<List<StudentVO>> getMyStudentList(HttpServletRequest request);

    R<List<Integer>> getRecentVideo(Long id);

    R<List<Integer>> getRecentPractice(Long id);

    R submitAdvice(String content);

    R updateUserInfo(User user, HttpServletRequest request);

    R<List<PieVO>> getRecentVideoData(Long id);

    R<List<PieVO>> getRecentPracticeData(Long id);
}
